Recently, there have been significant new uses of telephonic communications. One example is the tremendous growth in digital cellular telephones. Another example is the use of packet-based data networks, such as those conforming to the Internet Protocol (IP), to carry voice communications. This technology of carrying sound over a packet-based data network is called voice-over IP (VoIP). In VoIP applications, voice signals are digitized and travel on digital communication channels. The digital data is processed, conventionally using one or more digital signal processors (DSPs) or field programmable gate arrays (FPGAs).
A problem in telephony is “echo.” In telephony, “echo” is defined as the reflection of the caller's voice back to the caller through the phone lines. Echo cancellation is use to reduce or eliminate echo in telephonic communications. There are several causes of echo. For example, “line” echo is created when an electrical signal encounters an impedance mismatch at one end of the line causing substantial signal reflection, such as that caused by a 2 to 4 wire hybrid conversion from analog to digital communication systems. Conventionally, computations for echo cancellation are performed on a sample-by-sample basis in real time. One problem with sample-by-sample computation is that significantly large memory bandwidth is employed for real-time processing.
Additionally, echo is exacerbated by distance or echo path length delay. The longer an echo is delayed the more likely it will have a negative effect on quality of service. Echo delayed by 30 milliseconds (“ms”) or more is generally noticeable to the user, and delays greater than 50 ms have a pronounced negative affect on the quality of service, namely, making telephonic conversation problematic for the users. Echo path length delay of course depends in part on where in a system an echo is created, and thus cancellation of an echo with an echo path length delay of approximately 16 ms or greater is desirable and useful to promote quality of service. However, there may be instances where echo path delay is equal to or less than 16 ms. Because sound is now digitized for communication over a digital network or sub-network (“subnet”), even such a short echo path delay can negatively impact quality of service.
The International Telecommunications Union (“ITU”) has come out with a specification for digital network echo cancellers, namely, ITU G.168. To comply with a portion of this specification, a digital network echo canceller must have a minimum path delay greater than zero milliseconds, but to fully conform to this portion of ITU G.168, echo cancellation for a path delay of zero milliseconds must be possible, though a 1 ms echo path delay is allowed. For integrated circuits, such as Application Specific Integrated Circuits (ASICs) and DSPs, manufactured with sufficient internal memory, echo cancellation for echo path delays equal to or less than 16 ms is possible. However, manufacturing an integrated circuit with sufficient memory bandwidth for echo cancellation for a 16 ms or less threshold adds significant cost.
Accordingly, it would be desirable and useful to provide a digital network echo canceller that complies with echo cancellation for a minimum path delay of possibly zero milliseconds. Furthermore, it would be desirable and useful to provide a digital network echo canceller that allows for echo cancellation for a minimum path delay equal to or less than 16 ms that uses external memory for buffering data.